import java.util.Arrays;
import java.util.Comparator;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-06-18
 * Time: 23:08
 */

public class Solution {
    // 排序 + 贪心
    public int findMinArrowShots(int[][] points) {
        if (points.length == 0) {
            return 0;
        }
//         注意这里面的排序规则 一个负数 - 这个正数 可能溢出
//         所以要么使用 Comparator.comparingInt((int[] arr) -> arr[1])
//         要么用三目运算符,  (p1, p2) -> p1[1] < p2[1] ? -1 : 1
        Arrays.sort(points, new Comparator<int[]>() {
            public int compare(int[] point1, int[] point2) {
                if (point1[1] > point2[1]) {
                    return 1;
                } else if (point1[1] < point2[1]) {
                    return -1;
                } else {
                    return 0;
                }
            }
        });
        int pos = points[0][1];
        int ans = 1;
        for (int[] balloon: points) {
            if (balloon[0] > pos) {
                pos = balloon[1];
                ++ans;
            }
        }
        return ans;
    }
}